Analyzing delay variations and transition time variations for electronic circuits

ABSTRACT

A system receives a circuit description and measures of intrinsic delay, intrinsic delay variation, transition time and transition time variation for each stage and determines stage delay variation of each stage. The system receives a circuit description and derate factors and determines an intrinsic delay standard deviation and a correlation coefficient. The system determines a stage delay variation of each stage based on the determined factors. The system receives parameters describing an asymmetric distribution of delay values and generates a normal distribution of delay values. The system receives measures of nominal transition time at an output and input of a wire, and transition time variation at the input of the wire and determines a transition time variation at the output of the wire. The system receives measures of an Elmore delay and a nominal delay of the wire and determines a delay variation at the output of the wire.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a divisional of U.S. application Ser. No.15/067,576, filed Mar. 11, 2016, now U.S. Pat. No. 10,255,395, which isincorporated by reference in its entirety.

BACKGROUND 1. Field of Art

The disclosure generally relates to statistical static timing analysisof electronic circuits and more specifically to analyzing delayvariations and transition time variations in statistical static timinganalysis of electronic circuits.

2. Description of the Related Art

Conventional ways of performing timing analysis of circuits includesimulation based approaches. As the complexity of integrated circuits(ICs) grows, using simulation based approaches to verify timingconstraints become impractical in view of long runtimes, low capacities,and incomplete analysis.

Another technique for performing timing analysis of circuits is statictiming analysis (STA). Unlike the simulation based approaches, STAverifies timing by computing worst-case delays without enumerating allpossible paths. Thus, STA can perform a thorough timing analysis forlarge ICs within a reasonable amount of time. Therefore, STA is themethod of choice for verifying timing constraints for large ICs.

Design and fabrication of ICs involve complex physical and chemicalprocesses which cause on-chip variation (OCV) of timing-relatedparameters. Typically, STA techniques model this OCV using globalderating parameters used to determine delays to reflect OCV. Applyingglobal derating parameters to each delay value often ignores context orlocation regarding the delay.

As the density of integrated circuits (ICs) increases, the dimension ofthe transistors becomes smaller. Furthermore there is a trend towardsdecreasing the operating voltage of circuits. As transistors becomesmaller and operating voltage continues dropping, local random variationbecomes increasingly important for the performance of ICs. Variousmodels are being developed to analyze local random variations anddetermine delay variations and transition time variations. However,conventional techniques are deficient in determining the impact of localrandom variations on the overall circuit.

BRIEF DESCRIPTION OF DRAWINGS

The disclosed embodiments have other advantages and features which willbe more readily apparent from the detailed description, the appendedclaims, and the accompanying figures (or drawings). A brief introductionof the figures is below.

FIG. 1 shows a flow chart illustrating various operations in the designand fabrication of an integrated circuit, according to one embodiment.

FIG. 2 illustrates a system architecture diagram showing various modulesof a static timing analyzer, according to one embodiment.

FIG. 3 illustrates a system architecture diagram showing various modulesof a delay analyzer, according to one embodiment.

FIG. 4 illustrates a path including two stages, according to oneembodiment.

FIG. 5 is a flow diagram illustrating a process for determining stagedelay variation based on intrinsic delay variation and a covariancedelay term, according to one embodiment.

FIG. 6 is a flow diagram illustrating a process for determining stagedelay variation based on intrinsic delay standard deviation andcorrelation coefficient, according to one embodiment.

FIG. 7 illustrates an asymmetric distribution of delay values, accordingto an embodiment.

FIG. 8 is a flow diagram illustrating a process for generating asymmetric delay distribution from an asymmetric delay distribution ofcells, according to one embodiment.

FIG. 9A is a flow diagram illustrating a process for determining a delayvariation at an output of a wire, according to one embodiment.

FIG. 9B is a flow diagram illustrating a process for determining atransition time variation at an output of a wire, according to oneembodiment.

FIG. 10 illustrates one embodiment of components of an example machineable to read instructions from a machine-readable medium and executethem in a processor (or controller).

DETAILED DESCRIPTION

The Figures (FIGS.) and the following description relate to preferredembodiments by way of illustration only. It should be noted that fromthe following discussion, alternative embodiments of the structures andmethods disclosed herein will be readily recognized as viablealternatives that may be employed without departing from the principlesof what is claimed.

Reference will now be made in detail to several embodiments, examples ofwhich are illustrated in the accompanying figures. It is noted thatwherever practicable similar or like reference numbers may be used inthe figures and may indicate similar or like functionality. The figuresdepict embodiments of the disclosed system (or method) for purposes ofillustration only. One skilled in the art will readily recognize fromthe following description that alternative embodiments of the structuresand methods illustrated herein may be employed without departing fromthe principles described herein.

Configuration Overview

Embodiments of a disclosed system, method and computer readable storagemedium for performing static timing analysis are disclosed herein. Inone embodiment, a static timing analyzer receives a digitalrepresentation of an electronic circuit. The circuit includes paths andeach path of the circuit includes one or more stages. For each stage ofthe path, the static timing analyzer receives, or otherwise accesses,from a library, measures of intrinsic delay, intrinsic delay variation,transition time, and transition time variation. For a first stage of thepath, the static timing analyzer determines a stage delay variation atan output of the first stage based on the intrinsic delay and thetransition time of the first stage. For each stage following the firststage in the path, where inputs of the stage are coupled to outputs of aprevious stage, the static timing analyzer determines a covariance delayterm and stage delay variation. The static timing analyzer determinesthe covariance delay term based on the stage and a previous stage anddetermines the stage delay variation based on the received intrinsicdelay variation of the stage and the covariance delay term.

An OCV analysis scales the path delays by a fixed percentage calledglobal derate factor value. For example, the path delays may beincreased by 20 percent by scaling the path delays by a global deratefactor value 1.2 or path delays may be decreased by 20 percent byscaling the path delay values by a global derate factor value 0.8. Theglobal derate factor value may vary based on a stage count. The stagecounts represent a number of stages of paths of the circuit. In anembodiment, the static timing analyzer receives a mapping from stagecounts to global derate factor values. The mapping may be represented asa table that stores tuples (n, v) where n is the stage count and v isthe global derate factor value for stage count n. Accordingly, globalderate factor values represent a measure of stage delay variation forpaths having a given number of stages, where the measure of stage delayvariation is specified on a per stage basis. For example, the mappingmay specify a global derate factor value v1 for stage count 1, v2 forstage count 2, v3 for stage count 3, vn for stage count n, and so on.Accordingly, the mapping indicates that for paths having n stages, thestage delay variation per stage is vn. Typically, the global deratefactor values decrease as the stage count increases. The static timinganalyzer determines a plurality of parameters including an intrinsicdelay standard deviation and a correlation coefficient based on themapping from the stage counts to the global derate factor values. Thestatic timing analyzer determines a stage delay variation for stages ina path based on the determined plurality of parameters.

In another embodiment, the static timing analyzer receives informationdescribing distribution of delay values for a circuit including a meanvalue and parameters describing an asymmetric distribution. Theseparameters include a first standard deviation of delay values that areless than the mean value and a second standard deviation of delay valuesthat are higher than the mean value. The system generates parametersdescribing delay values having a normal distribution from the parametersdescribing delay values having the received asymmetric distribution ofdelay value parameters. The system performs statistical static timinganalysis of the circuit propagates the delay values based on normaldistribution in accordance with a parametric on-chip variation (POCV)methodology.

In another embodiment, the static timing analyzer receives or otherwiseaccesses from a library, for each wire joining the stages of the path,measures of nominal transition time at an output of each wire, a nominaltransition time at an input of each wire, and a transition timevariation at the input of each wire. For each wire joining the stages ofthe path, the static timing analyzer determines a transition timevariation at the output of the wire based on the received parameters.

In another embodiment, the static timing analyzer further receives, orotherwise accesses, parameters comprising measures of an estimate of adelay through an RC network and a nominal delay at the output of eachwire. For example, the estimate of delay through the RC network is anElmore delay. For each wire joining the stages of the path, the statictiming analyzer determines a delay variation at the output of wire basedon the received parameters.

Overview of EDA Design Flow

FIG. 1 is a flowchart 100 illustrating the various operations in thedesign and fabrication of an integrated circuit. This process startswith the generation of a product idea 110, which is realized during adesign process that uses electronic design automation (EDA) software112. When the design is finalized, it can be taped-out 134. Aftertape-out, a semiconductor die is fabricated 136 to form the variousobjects (e.g., gates, metal layers, vias) in the integrated circuitdesign. Packaging and assembly processes 138 are performed, which resultin finished chips 140.

The EDA software 112 may be implemented in one or more computing devicessuch as the computer 1000 of FIG. 10. For example, the EDA software 112is stored as instructions in the computer-readable medium which areexecuted by a processor for performing operations 114-132 of the designflow, which are described below. This design flow description is forillustration purposes. In particular, this description is not meant tolimit the present disclosure. For example, an actual integrated circuitdesign may require a designer to perform the design operations in adifference sequence than the sequence described herein.

During system design 114, designers describe the functionality toimplement. They can also perform what-if planning to refine thefunctionality and to check costs. Note that hardware-softwarearchitecture partitioning can occur at this stage. Example EDA softwareproducts from Synopsys, Inc. of Mountain View, Calif. that can be usedat this stage include: Model Architect®, Saber®, System Studio®, andDesignware® products.

During logic design and functional verification 116, VHDL or Verilogcode for modules in the circuit is written and the design is checked forfunctional accuracy. More specifically, the design is checked to ensurethat it produces the correct outputs. Example EDA software products fromSynopsys, Inc. of Mountain View, Calif. that can be used at this stageinclude: VCS®, Vera®, 10 Designware®, Magellan®, Formality®, ESP® andLeda® products.

During analog design, layout, and simulation 117, analog circuits aredesigned, layed out, and simulated to ensure both functionality andperformance. Example EDA software products from Synopsys, Inc. ofMountain View, Calif. that can be used at this stage include: CustomDesigner®, Hspice®, HspiceRF®, XA®, Nanosim®, HSim®, and Finesim®products.

During synthesis and design for test 118, VHDL/Verilog is translated toa netlist. This netlist can be optimized for the target technology.Additionally, tests can be designed and implemented to check thefinished chips. Example EDA software products from Synopsys, Inc. ofMountain View, Calif. that can be used at this stage include: DesignCompiler®, Physical Compiler®, Test Compiler®, Power Compiler®, FPGACompiler®, Tetramax®, and Designware® products.

During netlist verification 120, the netlist is checked for compliancewith timing constraints and for correspondence with the VHDL/Verilogsource code. Example EDA software products from Synopsys, Inc. ofMountain View, Calif. that can be used at this stage include:Formality®, PrimeTime®, and VCS® products.

During design planning 122, an overall floor plan for the chip isconstructed and analyzed for timing and top-level routing. Example EDAsoftware products from Synopsys, Inc. of Mountain View, Calif. that canbe used at this stage include: Astro® and IC Compiler® products.

During physical implementation 124, the placement (positioning ofcircuit elements) and routing (connection of the same) occurs. ExampleEDA software products from Synopsys, Inc. of Mountain View, Calif. thatcan be used at this stage include: the Astro® and IC Compiler® products.

During analysis and extraction 126, the circuit function is verified ata transistor level, which permits refinement. Example EDA softwareproducts from Synopsys, Inc. of Mountain View, Calif. that can be usedat this stage include: Astrorail®, Primerail®, PrimeTime®, and StarRC/XT® products.

During physical verification 128, the design is checked to ensurecorrectness for: manufacturing, electrical issues, lithographic issues,and circuitry. Example EDA software products from Synopsys, Inc. ofMountain View, Calif. that can be used at this stage include theHercules® product.

During resolution enhancement 130, geometric manipulations of the layoutare performed to improve manufacturability of the design. Example EDAsoftware products from Synopsys, Inc. of Mountain View, Calif. that canbe used at this stage include: Proteus®, Proteus® AF, and PSMGED®products.

During mask-data preparation 132, the ‘tape-out’ data for production ofmasks to produce finished chips is provided. Example EDA softwareproducts from Synopsys, Inc. of Mountain View, Calif. that can be usedat this stage include the CATS® family of products.

Embodiments of the present disclosure can be used during one or more ofthe above-described stages. Specifically, embodiments may be used forthe processes of analog design, layout, and simulation 117, analysis andextraction 126, and physical verification 128. Accordingly, a digitalrepresentation of an electronic circuit is analyzed based on thedisclosed embodiments relating to FIGS. 2-9B to determine whether thecircuit needs to be modified. If a determination is made that thecircuit needs further modification, the circuit is modified to generateand save a modified digital representation of the electronic circuit.The modifications to the digital representation of the electroniccircuit may be performed automatically by the system. Alternatively, thesystem presents results of analysis and receives modifications to thedigital representation of the electronic circuit, for example,modifications performed by a circuit designer using the EDA software112. Once the digital representation of the electronic circuit isfinalized, the digital representation of the electronic circuit is usedfor manufacturing or fabrication of a physical circuit based on thedigital representation, for example, an integrated circuit.

Static Timing Analysis

FIG. 2 illustrates an overall system environment for performing statictiming analysis of a digital representation of an electronic circuitusing a static timing analyzer 210, according to one embodiment. Thestatic timing analyzer 210 computes timing information for a circuitdesign. By using a static timing analyzer 210, a designer can determinewhether the circuit design contains any timing violations, such as ahold time violation or a setup time violation.

The static timing analyzer 210 determines a timing slack for the varioustiming paths of the circuit design. As used herein, timing slack is thedifference between the target delay time of a path and the determineddelay time of the path determined by the static timing analyzer 210. Apositive value for the slack indicates that the circuit design does nothave a timing violation, and a negative value for the slack indicatesthat the circuit design has a timing violation.

The static timing analyzer 210 includes a circuit store 220, a timingstore 230, a derate store, a delay analyzer 240 and an output module250. In other embodiments, the static timing analyzer 210 can includeadditional, fewer, or different modules for various applications.Conventional components such as network interfaces, security mechanisms,load balancers, failover servers, management and network operationsconsoles, and the like are not shown so as to not obscure the details ofthe system.

In some embodiments, the static timing analyzer 210 receives a circuitdescription 202 and timing data 204 and performs static timing analysisof a circuit to generate results of timing analysis 260. The circuitdescription 202 is a digital representation of the circuit. In otherembodiments, the static timing analyzer 210 receives a circuitdescription 202 and derate factors 208 and performs static timinganalysis of a circuit to generate results of timing analysis 260. Anexample of results 260 is stage delay variation.

To increase efficiency of the static timing analysis, the circuit store220 stores the circuit description 202 of a circuit being analyzed. Thecircuit description 202 includes a netlist, various constraints, etc. Inone embodiment, the circuit store 220 represents the circuit using agraph representation in which nodes of the graph correspond to variousstages (i.e., components) of the circuit and edges of the graphcorrespond to the connections between the various stages. The circuitincludes one or more paths where each path includes one or more stages.

Various modelling formats for modelling integrated circuit (IC)implementation and signoff, such as advanced on-chip variation (AOCV)and parametric on-chip variation (POCV), have been consolidated into asingle, unified open-source standard for industry-wide use, known as theLiberty Variation Format (LVF) extensions. The system analyzes a circuitin accordance with POCV methodology for statistical static timinganalysis of circuits is described in the U.S. Pat. No. 8,407,640, filedon Aug. 23, 2011 and issued on Mar. 26, 2013, and U.S. Pat. No.8,555,222, filed on Mar. 4, 2013 and issued on Oct. 8, 2013, each ofwhich is incorporated by reference herein in its entirety.

The LVF extensions include timing data for intrinsic delay, intrinsicdelay variation, transition time, and transition time variation for eachstage of each path of the circuit. The intrinsic delay represents theprocessing delay of the stage. The processing delay of the stage can bedue to intrinsic delay of the components of the stage. The intrinsicdelay variation represents a timing impact of local random variation ofthe intrinsic delay. In other words, the intrinsic delay variationrepresents a square of the standard deviation of the intrinsic delay.The intrinsic delay variation can depend on process, voltage,temperature, crosstalk, etc. The transition time represents a slope of asignal waveform shape. More specifically, the transition time representsthe time taken by a signal to change from a first value to a secondvalue. For example, the transition time may represent the time taken bya signal to rise from a low signal value to a high signal value.Alternatively, the transition time may represent the time taken by asignal to fall from a high signal value to a low signal value. A smallvalue of transition time indicates that the signal is changing from thefirst signal value to second signal value fast, resulting in a highslope of the signal waveform. Similarly, a large value of transitiontime indicates that the signal is changing from the first signal valueto the second signal value slowly, resulting in a small slope of thesignal waveform. The transition time variation represents a timingimpact of local random variation of the transition time. Accordingly,the transition time variation represents a square of the standarddeviation of the transition time.

The LVF extensions can further be used to compute timing data forapproximating the delay through an RC network, for example, an Elmoredelay, a nominal delay of a wire at an output of the wire, a nominaltransition time at the output of the wire, a nominal transition time atan input of the wire, and a transition time variation at the input ofthe wire.

The timing data 204 represents the timing data of the LVF extensions. Toincrease the efficiency of the static timing analysis, the timing store230 stores timing data including timing data 204. Specifically, thetiming store 230 stores timing data for each stage of a path of thecircuit. The timing store 230 further stores timing data output from thedelay analyzer module 240 including induced delay variation, covariancedelay and stage delay variation for each stage of each path of thecircuit.

The derate factors 208 account for on-chip variations (OCVs). The deratefactors 208 include global derate factors to be used for a circuit. Toincrease the efficiency of the static timing analysis, the derate store232 stores the derate factors 208. The derate factors 208 can bereceived from the advanced on-chip variation (AOCV) data. Furthermore,the derate factors 208 can be represented as a derate table.

The delay analyzer module 240 determines the stage delay variation foreach stage of each path of the circuit. In some embodiments, the delayanalyzer module 240 determines the stage delay variation based on theintrinsic delay of the stage, the induced delay variation of the stage,and the covariance delay of the stage. In these embodiments, the delayanalyzer module 240 determines the covariance delay of a current stagebased on a current stage and a previous stage. In other embodiments, thedelay analyzer module 240 determines stage delay variation based on anintrinsic delay standard deviation, a correlation coefficient, and aderating saturation value.

The output module 250 outputs the results of various computations, forexample, stage delay variation from the delay analyzer module 240 toresults of timing analysis 260. In some embodiments, the output module250 further outputs the timing data in the timing store 230. In otherembodiments, the output module 250 outputs the derate factors from thederate store 232.

Delay Analyzer

Referring now to FIG. 3, it illustrates the delay analyzer module 240,according to one embodiment. The delay analyzer module 240 includes atiming store processor 320, a variance determination module 330, aderate factors analyzer 340, a delay distribution analyzer 350, and awire delay and transition time variation analyzer 360.

The timing store processor 320 processes timing data stored in thetiming store 230 for each stage of the one or more stages of each pathof the one or more paths of the circuit. The timing store 320 storestiming data representing intrinsic delay, intrinsic delay variation,transition time, and transition time variation for each stage of eachpath of the circuit.

The derate factors analyzer 340 receives the derate factors stored inthe derate store 230 and determines stage delay variation each stagebased on the intrinsic delay standard deviation, the correlationcoefficient, and the derating saturation value. The delay analyzermodule 240 determines stage delay variation of each stage based on thecircuit description 202 stored in the circuit store 220 and the timingdata 204 stored in the timing store 230.

The delay distribution analyzer 350 receives parameters describing delayvalues that represent an asymmetric delay distribution and generatesparameters representing a normal distribution of the delay values. Thestatic timing analyzer 210 uses the generated parameters to propagatethe delay distribution values through stages of paths of the circuit forperforming POCV analysis of the circuit.

The wire delay and transition time variation analyzer 360 determines adelay variation at an output of a wire and a transition time variationat an output of a wire. The analyzer 360 determines the delay variationat the output of the wire based on an estimate of a delay through an RCnetwork, for example, an Elmore delay, a nominal delay of the wire atthe output of the wire, a nominal transition time at the output of thewire, a nominal transition time at an input of the wire, and atransition time variation at the input of the wire. The analyzer 360determines the transition time variation at the output of the wire basedon the nominal transition time at the output of the wire, the nominaltransition time at the input of the wire, and the transition timevariation at the input of the wire.

I. Stage Delay Variation

To ensure timing requirements are met, a conservative estimate of stagedelay variation is often used for performing timing analysis ofcircuits. Applying conservative estimates for paths with numerous stagescan result in an estimated performance poorer than the actualperformance and inaccurate timing violations may be generated.Traditional approaches for correcting the inaccurate timing violationsdecrease product performance and increase engineering cost. Thedisclosed embodiments provide less conservative and more accurate stagedelay variation data, which can be used to improve product performance

Stage delay variation comes from intrinsic stage process variation aswell as input transition time variation. Input transition time variationis independent from intrinsic stage process variations of a currentstage. However, input transition time variation is correlated from stagedelay variations from a previous stage. Thus, there is a correlationbetween a delay of a current stage and a delay of a previous stage.

IA. Stage Delay Variation—Timing Data

In some embodiments, the static timing analyzer 210 receives a circuitdescription 202 and timing data 204 as input and performs static timinganalysis of a circuit to generate results 260. Examples of results 260include stage delay variation based on the intrinsic delay variation ofthe stage, the induced delay variation of the stage, and the covariancedelay of the stage.

The variance determination module 330 determines induced delayvariation, covariance delay, and stage delay variation for each stage ofa path. The variance determination module 330 includes an induced delayvariation module 332 and a covariance module 334. The induced delayvariation module 332 and the covariance module 334 determine an induceddelay variation and a covariance delay, respectively, based on timingdata for a current stage and a previous stage.

The induced delay variation module 332 determines an induced delayvariation based at least in part on the intrinsic delay of the currentstage, the transition time of the previous stage, and the transitiontime variation of the previous stage. In an embodiment, the induceddelay variation is based on a change in the intrinsic delay of thecurrent stage divided by a change in the transition time of the previousstage, the quotient squared and multiplied by the transition timevariation of the previous stage.

The covariance module 334 determines a covariance delay based at leastin part on the intrinsic delay variation of the previous stage, theintrinsic delay of the current stage, the transition time of theprevious stage, and the transition time variation of the previous stage.The covariance module 334 determines covariance terms that provide ameasure of strength of correlation between two or more sets of variable.The covariance delay term is a measure of how much the intrinsic delayof the current stage and transition time of the previous stage changetogether. For example, the covariance delay can be based on a change inthe intrinsic delay of the current stage divided by a change in thetransition time of the previous stage, the quotient multiplied by thedelay variation of the previous stage and the transition time variationof the previous stage.

The variance determination module 330 determines stage delay variationfor each stage of the path based at least in part on the intrinsic delayvariation, the induced delay variation determined by the induced delayvariation module 332 and the covariance delay determined by thecovariance module 334.

IB. Stage Delay Variation—Timing Data—Example

FIG. 4 illustrates a path including two stages, according to oneembodiment. A first stage S1 and a second stage S2 are connected via awire 404. The first stage S1 receives input signal waveform 402 and thesecond stage S2 transmits outputs signal waveform 406. The inputwaveforms 402 and 406 are electrical signal waveforms.

Each of the first stage S1 and the second stage S2 have timing dataassociated with the stage. For example, the first stage S1 has intrinsicdelay D₁, intrinsic delay variation σ_(D) ₁ ², transition time T₁, andtransition time variation σ_(T) ₁ ². Similarly, the second stage S2 hasnominal intrinsic delay D₂, intrinsic delay variation σ_(D) ₂ ², nominaltransition time T₂, and transition time variation T₂.

As previously mentioned, the induced delay variation and the covariancedelay are based on a current stage and a previous stage. Whencalculating the stage delay variation for the first stage S1, the firststage S1 is the current stage and there is no previous stage. Therefore,the induced delay variation and the covariance delay of the first stageS1 are both zero. Thus, the stage delay variation of the first stage S1is simply the intrinsic delay variation of the first stage.

When calculating the stage delay variation for the second stage S2, thesecond stage S2 is the current stage and the first stage S1 is theprevious stage. The induced delay variation of the second stage S2 is afunction of a ratio of the intrinsic delay D₂ of the second stage S2 andtransition time T₁ of the first stage S1. Equation 1 represents ageneral form of the induced delay variation, σ_(induced) ₂ ², of thesecond stage S2.

$\begin{matrix}{\sigma_{{induced}_{2}}^{2} = {f\left( \frac{D_{2}}{T_{1}} \right)}} & {{Equation}\mspace{14mu} 1}\end{matrix}$

Specifically, the induced delay variation of the second stage S2 is afunction of a ratio of a change in the intrinsic delay D₂ of the secondstage S2 and a change in the transition time T₁ of the first stage S1.Equation 2 represents the induced delay variation of the second stage S2in this manner.

$\begin{matrix}{\sigma_{{induced}_{2}}^{2} = {f\left( \frac{\partial D_{2}}{\partial T_{1}} \right)}} & {{Equation}\mspace{14mu} 2}\end{matrix}$

The induced delay variation of the second stage S2 can be expressed as asquare of the ratio of the change in the intrinsic delay D₂ of thesecond stage S2 and the change in the transition time T₁ of the firststage S1, the square of the ratio scaled by a constant m. Equation 3represents the induced delay variation of the second stage S2 in thismanner.

$\begin{matrix}{\sigma_{{induced}_{2}}^{2} = {{f\left( \frac{\partial D_{2}}{\partial T_{1}} \right)}^{2} \cdot m}} & {{Equation}\mspace{14mu} 3}\end{matrix}$

The constant m represents the transition time variation of the firststage S1, σ_(T) ₁ ². Equation 4 represents the induced delay variationof the second stage S2 in this manner.

$\begin{matrix}{\sigma_{{induced}_{2}}^{2} = {{f\left( \frac{\partial D_{2}}{\partial T_{1}} \right)}^{2}\sigma_{T_{1}}^{2}}} & {{Equation}\mspace{14mu} 4}\end{matrix}$

Similar to the induced delay variation of the second stage S2, thecovariance delay of the second stage S2 is a function of a ratio of theintrinsic delay D₂ of the second stage S2 and the transition time T₁ ofthe first stage S1. Equation 5 represents a general form of thecovariance delay, COV₂, of the second stage S2.

$\begin{matrix}{{COV}_{2} = {f\left( \frac{D_{2}}{T_{1}} \right)}} & {{Equation}\mspace{14mu} 5}\end{matrix}$

Again, similar to the induced delay variation of the second stage S2,the covariance delay of the second stage S2 is a function of a ratio ofa change in the intrinsic delay D₂ of the second stage S2 and a changein the transition time T₁ of the first stage S1. Equation 6 representsthe covariance delay of the second stage S2 in this manner.

$\begin{matrix}{{COV}_{2} = {f\left( \frac{\partial D_{2}}{\partial T_{1}} \right)}} & {{Equation}\mspace{14mu} 6}\end{matrix}$

The covariance delay of the second stage S2 can be expressed as theratio of the change in the intrinsic delay D₂ of the second stage S2 andthe change in the transition time T₁ of the first stage S1, the ratioscaled by a constant n. Equation 7 represents the covariance delay ofthe second stage in this manner.

$\begin{matrix}{{COV}_{2} = {\frac{\partial D_{2}}{\partial T_{1}} \cdot n}} & {{Equation}\mspace{14mu} 7}\end{matrix}$

The constant, n, can be the delay variation σ_(D) ₁ ² of the first stageS1 scaled by the transition time variation σ_(T) ₁ ² of the first stageS1 further scaled by another constant, p. In one embodiment, theconstant p is 2. Equation 8 represents the covariance delay of thesecond stage S2, in this manner, where p is 2.

$\begin{matrix}{{COV}_{2} = {\frac{\partial D_{2}}{\partial T_{1}} \cdot \sigma_{D_{1}}^{2} \cdot \sigma_{T_{1}}^{2} \cdot 2}} & {{Equation}\mspace{14mu} 8}\end{matrix}$

The stage delay variation of a current stage, k, is expressed as afunction of timing data for the current stage, k, and a previous stage,k−1. Equation 9 represents the stage delay variation, σ_(stage) _(k) ²,for the current stage, k, as a function of the current stage, k, and theprevious stage, k−1.σ_(stage) _(k) ²=ƒ(k,k−1)  Equation 9

The stage delay variation of the current stage, k, is the sum of theintrinsic delay variation, the induced delay variation and thecovariance delay of the current stage, k, as a function of the previousstage, k−1, where applicable. Equation 10 represents the stage delayvariation for the kth stage.σ_(stage) _(k) ²=σ_(D) _(k) ²+σ_(induced) _(k)²(k,k−1)+COV_(k)(k,k−1)  Equation 10σ_(D) _(k) ² is the intrinsic delay variation of the kth stage,σ_(induced) _(k) ² is the induced delay variation, and COV_(k) is thecovariance delay of the kth.

Equation 11 represents the stage delay variation of the current stage,k, based on timing data for the current stage, k, and the previousstage, k−1.

$\begin{matrix}{\sigma_{{stage}_{k}}^{2} = {\sigma_{D_{k}}^{2} + \left( {\left( \frac{\partial D_{k}}{\partial T_{k - 1}} \right)^{2}\sigma_{T_{k - 1}}^{2}} \right) + \left( {\frac{\partial D_{k}}{\partial T_{k - 1}} \cdot \sigma_{D_{k - 1}}^{2} \cdot \sigma_{T_{k - 1}}^{2} \cdot 2} \right)}} & {{Equation}\mspace{14mu} 11}\end{matrix}$

Equation 11 can be modified to specifically relate to the example ofFIG. 4 regarding the first stage S1 and the second stage S2. Equation 12represents equation 11 as it applies to the example of FIG. 4 withreference to the first stage S1 and the second stage S2.

$\begin{matrix}{\sigma_{{stage}_{2}}^{2} = {\sigma_{D_{2}}^{2} + \left( {\left( \frac{\partial D_{2}}{\partial T_{1}} \right)^{2}\sigma_{T_{1}}^{2}} \right) + \left( {\frac{\partial D_{2}}{\partial T_{1}} \cdot \sigma_{D_{1}}^{2} \cdot \sigma_{T_{1}}^{2} \cdot 2} \right)}} & {{Equation}\mspace{14mu} 12}\end{matrix}$

FIG. 5 illustrates a flow diagram of a method for determining stagedelay variation, according to one embodiment. The flow diagram of FIG. 5summarizes the method disclosed in sections IA and IB. The circuit store220 receives 502 a digital representation of an electronic circuit. Thetiming store 230 receives 504 measures of intrinsic delay, intrinsicdelay variation, transition time, and transition time variation for eachstage of a plurality of stages for each path of a plurality of paths ofthe circuit. The variance determination module 330 determines 506 astage delay variation at an output of a first stage of a path based theintrinsic delay variation of the first stage. For each stage of the oneor more stages following the first stage of the path, the covariancemodule 334 determines 508 a covariance delay term based on a currentstage and a previous stage. Furthermore, the variance determinationmodule 330 determines 510 stage delay variation based on the intrinsicdelay variation of the stage and the covariance delay term.

IC. Stage Delay Variation—Derate Factors

In some embodiments, the static timing analyzer 210 receives a circuitdescription 202 and derate factors 208 of a circuit as input andperforms static timing analysis of a circuit to generate results 260.The circuit description 202 is a digital representation of the circuit.Examples of results 260 include stage delay variation based on theintrinsic delay standard deviation, the correlation coefficient, and thederating saturation value.

As mentioned previously, the derate factors 208 can be represented as aderate table. The derate table specifies a mapping from stage counts(i.e., number of stages of paths of the circuit) to the global deratefactors. The global derate factors represent a measure of stage delayvariation for paths having a given stage count, where the measure ofstage delay variation is specified on a per stage basis. In oneembodiment, the derate factors are irrespective of stage depth (e.g.,number of stages from a beginning of a path) of a particular stage inthe path. In other words, the same derate factor is applied to eachstage of a path where the derate factor is a function of the number ofstages in the path.

The derate factors analyzer 340 determines a plurality of parametersincluding the intrinsic delay standard deviation and the correlationcoefficient. The intrinsic delay standard deviation represents astandard deviation of a processing delay of a stage and the correlationcoefficient represents a correlation between a delay of a current stageand a delay of a previous stage. In one embodiment, the plurality ofparameters further includes a derating saturation value for each stagein a path. The derating saturation value represents a measure of globalderate factor values corresponding to large stage count values.Accordingly, the derating saturation value corresponds to a globalderate factor value for stage count greater than a predeterminedthreshold value.

The derate factors analyzer 340 selects a plurality of values of stagecounts and a corresponding plurality of values of global derate factorsfrom the received mapping. The received mapping may be referred to as afirst mapping.

In one embodiment, the derate factors analyzer 340 determines theplurality of parameters by fitting a curve to the selected plurality ofvalues of the stage counts and the corresponding plurality of values ofthe global derate factors. In an embodiment, derate factors analyzer 340determines a polynomial function representing the curve. The polynomialfunction maps stage counts to global derate factors. The polynomial maybe a second degree polynomial, a third degree polynomial, or an n^(th)degree polynomial where n is a value greater than or equal to 1. Thecurve represents a second mapping from stage counts to global deratefactor values. For example, the derate factors analyzer 340 selectsthree values of stage count and corresponding global derating factorsvalues from the received mapping and determines the plurality ofparameters based on the selected values by fitting a curve.

In another embodiment, the derate factors analyzer 340 determines theplurality of parameters by solving a system of equations based on theselected plurality of values of stage counts and the correspondingplurality of values of the global derate factors. The system ofequations represents a second mapping from stage counts to the globalderate factor values. For example, regression and least square fittingcan be used when solving the system of equations to minimize error ofthe determined parameters.

After computing the intrinsic delay standard deviation, the correlationcoefficient, and the derating saturation value, the derate factorsanalyzer 340 calculates the stage delay variation for each stage in apath based on the intrinsic delay standard deviation and the correlationcoefficient. In some embodiments, the derate factors analyzer 340calculates only the intrinsic delay standard deviation and thecorrelation coefficient and calculates the stage delay variation foreach stage in a path based on the intrinsic delay standard deviation andthe correlation coefficient.

ID. Stage Delay Variation—Derate Factors—Example

A derate factor d can be expressed as a function of the stage depth n,the intrinsic delay standard deviation σ_(intrinsic) and the correlationcoefficient ρ. Equation 13 represents the derate factor d in thismanner.d=ƒ(n,σ _(intrinsic),ρ)  Equation 13

Specifically, the derate factor, d, can be expressed as a function of aproduct of the stage count n, the intrinsic delay standard deviationσ_(intrinsic), and the correlation coefficient ρ. Equation 14 representsthe derate factor, d, in this manner.d=ƒ(n*σ _(intrinsic)*ρ)  Equation 14

Furthermore, the derate factor, d, can be expressed as a function of thestage count n, the intrinsic delay standard deviation σ_(intrinsic), thecorrelation coefficient ρ, the derating saturation value α and aconstant m. Equation 15 represents the derate factor, d, according toone example.

$\begin{matrix}{d = {m + \alpha + {3\sigma_{intrinsic}\frac{\sqrt{n + {2{\rho\left( {n - 1} \right)}}}}{n}}}} & {{Equation}\mspace{14mu} 15}\end{matrix}$In one example, the constant m is equal to 1.

As mentioned previously, the derate factors 208 represented as a deratetable include a mapping from stage count (i.e., n) to global deratefactors (i.e., derate factor d). In other words, the derate factor d isknown for each stage count n. Equation 15 includes three unknowns: theintrinsic delay standard deviation σ_(intrinsic), the correlationcoefficient ρ, and the derating saturation value α.

In one example, choosing three values for stage count n corresponds tothree values for derate factors d leading to three equations with thethree unknowns. The system of equations can be solved to determine thethree unknowns. In another example, the derate factors d for all thestage counts n can be used to determine the three unknowns. Using deratefactors d for all the stage counts along with regression and leastsquare fitting can minimize error of the three unknowns.

The stage delay variation of a current stage, k, is expressed as afunction of timing data for the current stage, k, and a previous stage,k−1. Equation 16 represents the stage delay variation, σ_(stage) _(k) ²,for the current stage, k, as a function of the current stage, k, and theprevious stage, k−1.σ_(stage) _(k) ²=ƒ(k,k=1)  Equation 16

The stage delay variation of the current stage, k, is the sum of theintrinsic delay variation, the induced delay variation and thecovariance delay of the current stage, k, as a function of the previousstage, k−1, where applicable. Equation 17 represents the stage delayvariation for the kth stage.σ_(stage) _(k) ²=σ_(intrinsic) _(k) ²+σ_(induced) _(k)²(k,k−1)+COV_(k)(k,k−1)  Equation 17σ_(intrinsic) _(k) ² is the intrinsic delay variation of the kth stage,σ_(induced) _(k) ² is the induced delay variation, and COV_(k) is thecovariance delay of the kth.

Equation 17 can be simplified assuming the intrinsic delay variationσ_(intrinsic) _(k) ² and the induced delay variation σ_(induced) _(k) ²of all the stages are the same. Equation 18 represents a simplifiedversion of equation 17 under the previously mentioned assumption.σ_(stage) _(k) ²=σ_(k) ²(1+2ρ)  Equation 18ρ is the derating saturation value and σ_(k) ² is a square of theintrinsic delay standard deviation σ_(intrinsic) of any stage in thepath.

FIG. 6 illustrates a flow diagram of a method of determining stage delayvariation, according to another embodiment. The flow diagram of FIG. 6summarizes the method disclosed in sections IC and ID. The circuit store220 receives 602 a digital representation of an electronic circuit. Thederate factors analyzer 340 receives 604 the derate factors 208 from thederate store 232. For example, the derate factors 208 may include amapping from stage counts to global derate factors. The derate factorsanalyzer 340 determines 606 a plurality of parameters including theintrinsic delay standard deviation and the correlation coefficient basedon the derate factors stored in the derate store 232. The derate factorsanalyzer 340 determines 608 the stage delay variation based on thedetermined plurality of parameters.

II. Generating Normal Distribution from Asymmetric Distribution of StageDelays

At lower voltage, distributions of delay values of stages of electroniccircuits show strong non-linearity and become asymmetric. Accordingly,the standard deviation for delay values that are greater than the meandelay value are different from the standard deviation for delay valuesthat are lower than the mean delay value.

A stage library storing parameters used for analysis of an electroniccircuit specifies a mean value for a delay distribution and parametersdescribing an asymmetric distribution of the delay values. Theseparameters include a first standard deviation value and a secondstandard deviation value. The first standard deviation is for delayvalues that are less than the mean value and the second standarddeviation is for delay values that are higher than the mean value. Thefirst standard deviation is referred to as an early sigma value and thesecond standard deviation value is referred to as a late sigma value.Propagating the asymmetric distribution using the POCV methodologycauses the analysis based on early sigma values to become toopessimistic and the analysis based on late sigma values to become toooptimistic. As a result, the POCV analysis is not accurate. The standarddeviation of a distribution may also be referred to herein as a sigmavalue or sigma.

To alleviate the above issues with propagating asymmetric distributionof delays, the delay distribution analyzer 350 generates a normaldistribution (or a Gaussian distribution) of delay values based on theasymmetric distribution of delay value parameters. The static timinganalyzer 210 propagates the delay values based on the normaldistribution in accordance with the POCV methodology.

The delay distribution analyzer 350 determines a nominal mean andnominal sigma values for the generated normal distribution of the delayvalues. The static timing analyzer 210 performs statistical statictiming analysis of the circuit by propagating the nominal mean andnominal sigma values of the generated normal distribution through thestages of the circuit in accordance with the POCV methodology.

FIG. 7 illustrates an asymmetric distribution of delay values, accordingto an embodiment. FIG. 7 shows a histogram of path delays. Accordingly,the x-axis of the chart shown in FIG. 7 has delay values increasing fromleft to right and the y-axis shows the frequency of occurrence for aspecific delay value. The delay distribution shown in FIG. 7 has a meanvalue, 720. The delay distribution has a first standard deviation value710 for delay values that are below the mean value 720 and a secondstandard deviation value 730 for delay values above the mean value 720.As shown in FIG. 7, typically, the standard deviation 730 for delayvalues above the mean value 720 is larger than the standard deviation710 for delay values below the mean value 720.

FIG. 8 is a flow diagram illustrating a process for generating asymmetric delay distribution from an asymmetric delay distribution ofcells, according to one embodiment. The delay distribution analyzer 350receives 810 parameters describing asymmetric distribution of delayvalues of cells of an electronic circuit including a mean value andearly and late sigma values for the asymmetric distribution of delayvalues of the cells.

The delay distribution analyzer 350 determines 820 an adjusted mean andan adjusted sigma value for a normal distribution of delay values forthe electronic circuit based on the parameters of the asymmetricdistribution of delay values. The determined normal distribution issymmetric, i.e., the sigma values are same for delay values smaller thanthe mean value as well as for delay values larger than the mean value.In one embodiment, the delay distribution analyzer 350 determinesparameters for an early normal distribution of delay values for an earlymode analysis and parameters for a late normal distribution for a latemode analysis. Accordingly, two separate analyses are performed, anearly mode analysis and a late mode analysis. However, the parametersused for both the analyses represent a normal or Gaussian distributionof delay values that is symmetric.

The static timing analyzer 210 propagates 830 the adjusted parameters,i.e., the adjusted mean value and the adjusted sigma value or valuesthrough cells of the electronic circuit to perform POCV analysis of theelectronic circuit. In an embodiment, the static timing analyzer 210propagates 830 the adjusted parameters by receiving parameters for inputnodes of the circuit and following paths from the inputs to outputs ofthe circuit. For each stage in the path, the static timing analyzer 210determines values of the adjusted parameters at the output of the stagebased on the adjusted parameter values at the inputs of the stage andparameters of the stage. Accordingly, the static timing analyzer 210determines the parameters of delay values (e.g., mean value and standarddeviation values) at the outputs of the circuit based on the parametersof delay values at the inputs of the circuit and parameter of stagesencountered in a path from the inputs to the outputs.

In one embodiment, the delay distribution analyzer 350 determines a meanshift value represented as A in equations described below. The meanshift value represents a parameter used for determining an amount bywhich the parameters of a distribution are shifted when they areadjusted for use in the POCV analysis of a circuit. The mean shift valueΔ is determined based on the late sigma value and the early sigma valuesof the asymmetric distribution of delay values for the circuit. Thedelay distribution analyzer 350 determines the adjusted mean value andthe adjusted sigma value of the normal distribution based on the meanshift value Δ. In one embodiment, delay distribution analyzer 350determines the mean shift value Δ based on a difference between the latesigma value and the early sigma value. The delay distribution analyzer350 determines the mean shift value Δ as a product of the differencebetween the late sigma value and the early sigma value and an alphafactor α, as shown in equation 19.Δ=α×(ρ_(late)−ρ_(early))  Equation 19

The value of the alpha factor α depends on a model used for analyzingthe circuit. The delay distribution analyzer 350 further determinesadjusted sigma values for a normal distribution of the delay valuesbased on the mean shift value Δ. In one embodiment, the delaydistribution analyzer 350 further determines an adjusted early sigmavalue {tilde over (σ)}_(early) for an early mode analysis and anadjusted late sigma value {tilde over (σ)}_(late) for a late modeanalysis. The early mode analysis uses an early normal distributionhaving the adjusted mean value of the distribution and the adjustedearly sigma value {tilde over (σ)}_(early) for performing the POCVanalysis. The late mode analysis uses a late normal distribution havingthe adjusted mean value of the distribution and the adjusted late sigmavalue {tilde over (σ)}_(late) for performing the POCV analysis

According to one embodiment, the delay distribution analyzer 350determines the adjusted early sigma value {tilde over (σ)}_(early) as asum of the early sigma σ_(early) and a weighted mean shift value Δ asillustrated by equation 20. As shown in equation 20, the mean shiftvalue Δ is divided by a factor n before being added to the early sigmaσ_(early) for determining the adjusted early sigma value {tilde over(σ)}_(early). The factor n represents a user specified number of sigmavalues for use in the timing analysis.{tilde over (σ)}_(early)=σ_(early) +Δ/n  Equation 20

According to one embodiment, the delay distribution analyzer 350determines the adjusted late sigma value {tilde over (σ)}_(late) as asum of the late sigma σ_(late) and a weighted mean shift value Δ asillustrated by equation 21. As shown in equation 21, the mean shiftvalue Δ is divided by the factor n before being subtracted from the latesigma σ_(late) for determining the adjusted late sigma value {tilde over(σ)}_(late){tilde over (σ)}_(late)=σ_(late) −Δ/n  Equation 21

In one embodiment, the delay distribution analyzer 350 determines theadjusted mean value μ_(new) by adding the mean shift value Δ of theasymmetric distribution received as input as illustrated by equation 22.μ_(new)=μ_(old)+Δ  Equation 22

There are three methods or models for determining the value of αaccording to different embodiments. The first method models the delayvariation as sum of multiple two-piece normal distributions as describedby equation 23, where x is a unified normal distribution.

$\begin{matrix}{{delay} = {{\Sigma\; d_{i}\mspace{14mu}{where}\mspace{14mu} d_{i}} = \left\{ \begin{matrix}{a_{1}x} & \left( {x < 0} \right) \\{a_{2}x} & \left( {x \geq 0} \right)\end{matrix} \right.}} & {{Equation}\mspace{14mu} 23}\end{matrix}$

According to equation 23, the delay is modeled differently for values ofx<0 and values of x≥0. Under this model, the value of A is obtained bycalculating the mean value of the above delay function. Accordingly, thevalue of α is determined to be as shown in equation 24.

$\begin{matrix}{\alpha = \frac{1}{\sqrt{2\pi}}} & {{Equation}\mspace{14mu} 24}\end{matrix}$

In one embodiment, the delay distribution analyzer 350 uses a value of αthat is substantially equal to

$\frac{1}{\sqrt{2\pi}},$i.e., within a small predetermined threshold value of

$\frac{1}{\sqrt{2\pi}}..$Based on the value of α as shown in equation 24, the delay distributionanalyzer 350 determines the value of Δ as shown in equation 25.

$\begin{matrix}{\Delta = {\frac{1}{\sqrt{2\pi}} \cdot \left( {\sigma_{late} - \sigma_{early}} \right)}} & {{Equation}\mspace{14mu} 25}\end{matrix}$

The second method models the delay variation as a single split-normaldistribution as shown in equation 26. In equation 26, the probabilitydistribution function (PDF) is the probability density function and expis the exponential function.

$\begin{matrix}{{{PDF}(x)} = \left\{ \begin{matrix}{\frac{2}{\sqrt{2\pi}\left( {\sigma_{early} + \sigma_{late}} \right)}{\exp\left( {- \frac{x^{2}}{2\sigma_{early}^{2}}} \right)}} & \left( {x < 0} \right) \\{\frac{2}{\sqrt{2\pi}\left( {\sigma_{early} + \sigma_{late}} \right)}{\exp\left( {- \frac{x^{2}}{2\sigma_{late}^{2}}} \right)}} & \left( {x \geq 0} \right)\end{matrix} \right.} & {{Equation}\mspace{14mu} 26}\end{matrix}$

Under this model, the value of Δ is determined by calculating the meanvalue of the above delay distribution. According to the second model thevalue of α is determined to be as shown in equation 27.

$\begin{matrix}{\alpha = \sqrt{\frac{2}{\pi}}} & {{Equation}\mspace{14mu} 27}\end{matrix}$

In one embodiment, the delay distribution analyzer 350 uses a value of αthat is substantially equal to

$\sqrt{\frac{2}{\pi}},$i.e., within a small predetermined threshold value of

$\sqrt{\frac{2}{\pi}}.$Based on the above value of α, the delay distribution analyzer 350determines the value of Δ as shown in equation 28.

$\begin{matrix}{\Delta = {\sqrt{\frac{2}{\pi}} \cdot \left( {\sigma_{late} - \sigma_{early}} \right)}} & {{Equation}\mspace{14mu} 28}\end{matrix}$

The third model is based on a bounding method that ensures that thetransformed distribution cumulative distribution function (CDF)completely bounds the CDF of computed delay distribution from negative nsigma to positive n sigma where n is the user specified number of sigma.According to the third model the value of α is shown in equation 29.

$\begin{matrix}{a = \frac{n}{2}} & {{Equation}\mspace{14mu} 29}\end{matrix}$

In one embodiment, the delay distribution analyzer 350 uses a value of αthat is substantially equal to

$\frac{n}{2},$i.e., within a small predetermined threshold value of

$\frac{n}{2}.$Based on the above value of α, the delay distribution analyzer 350determines the value of Δ as shown in equation 30.

$\begin{matrix}{\Delta = {\frac{n}{2} \cdot \left( {\sigma_{late} - \sigma_{early}} \right)}} & {{Equation}\mspace{14mu} 30}\end{matrix}$

In this embodiment, the delay distribution analyzer 350 determines thevalue of adjusted mean μ_(new) for the normal distribution using theequation 31.

$\begin{matrix}{\mu_{new} = {\mu_{old} + {n\frac{\sigma_{late} - \sigma_{early}}{2}}}} & {{Equation}\mspace{14mu} 31}\end{matrix}$

In general the delay distribution analyzer 350 determines the nominalstandard deviation σ_(new) as a weighted aggregate of the late sigma(σ_(late)) and early sigma (σ_(early)) values. In equation 32, w₁ and w₂are weights assigned to the terms σ_(late) and σ_(early) respectively.σ_(new) =w ₁×σ_(late) +w ₂×σ_(early)  Equation 32

In one embodiment, both w₁ and w₂ have the same constant value. Forexample, the weights w₁ and w₂ have values substantially equal to theconstant value

$\frac{1}{2}.$Accordingly, the nominal standard deviation σ_(new) is determined usingequation 33.

$\begin{matrix}{\sigma_{new} = \frac{\sigma_{late} + \sigma_{early}}{2}} & {{Equation}\mspace{14mu} 33}\end{matrix}$III. Wire Propagation Delay and Fanout Transition Time Variation

Wires, which connect different stages of a path, can cause wirepropagation delays. Wire propagation delays can be accurately computedafter a wire layout of the path is known. Embodiments determine wirepropagation delay by modelling the wire as an RC network. Embodimentsperform a method of propagating transition time variation from an inputof an RC network to an output of the RC network. Embodiments determinethe wire propagation delay based on a closed form expression for wirepropagation delay of wires of a path.

Referring to FIG. 4, it illustrates a path including two stages,according to one embodiment. A wire 404 connects a first stage S1 and asecond stage S2. A first end 408 of the wire 404 is connected to anoutput of the first stage S1 and a second end 410 of the wire 404 isconnected to an input of the second stage S2. The first end 408 of thewire 404 can be referred to as an input 404 of the wire 404 and thesecond end 410 of the wire 404 can be referred to as an output 410 ofthe wire 404. Accordingly, the first end 408 of the wire 404 is an inputto the RC network and the second end 410 of the wire 404 is an output ofthe RC network.

The wire delay and transition time variation analyzer 360 determines adelay variation at an output of a wire and a transition time variationat an output of a wire. The analyzer 360 can determine the delayvariation at the output of the wire and the transition time variation atthe output of the wire for each wire of a path (i.e., all each wireconnecting a stage to another stage).

The wire delay and transition time variation analyzer 360 determines thedelay variation at the output of the wire based on the timing data inthe timing store 230 including the Elmore delay, the nominal delay ofthe wire at the output of the wire, the nominal transition time at theoutput of the wire, the nominal transition time at the input of thewire, and the transition time variation at the input of the wire. Thedelay variation of a wire (e.g., wire 404) at an output of the wireΔd_(o) is modeled as a function of a difference of an estimate of adelay through an RC network, for example, an Elmore delay d_(e) and anominal delay of the wire at the output of the wire d_(o). Equation 34represents the delay variation of the wire in this manner.Δd _(o)=ƒ(d _(e) −d _(o))  Equation 34

The Elmore delay d_(e) is an approximation of a delay through an RCnetwork. The Elmore delay d_(e) is simple to compute and provides anupper bound for the wire propagation delay. However, the Elmore delayd_(e) alone is not very accurate for static timing analysis.

The delay variation of the wire at the output of the wire Δd_(o) can beexpressed as a product of the difference of the Elmore delay d_(e) andthe nominal delay of the wire at the output of the wire d_(o) and afunction of a nominal transition time at the output of the wire T_(o), anominal transition time at the input of the wire T_(i), and a transitiontime variation at the input of the wire ΔT_(i). Equation 35 representsthe delay variation at the output of the wire Δd_(o) in this manner.Δd _(o)=(d _(e) −d _(o))*ƒ(T _(o) ,T _(i) ,ΔT _(i))  Equation 35

The function ƒ(T_(o), T_(i), ΔT_(i)) includes a ratio of a first termand a second term, where the first term is a function of T_(o) and thesecond term is a function of T_(o), T_(i), and ΔT_(i). In oneembodiment, the first term is T_(o) ² and the second term is T_(o)²+2T_(u)ΔT_(i)+ΔT_(i) ². Equation 36 represents the delay variation atthe output of the wire Δd_(o) as a function of d_(e), d_(o), T_(o),T_(i), and ΔT_(i) represented according to one embodiment.

$\begin{matrix}{{\Delta\; d_{o}} = {\left( {d_{e} - d_{o}} \right)*\left( {1 - \left( \frac{T_{o}^{2}}{T_{o}^{2} - {2T_{i}\Delta\; T_{i}} + {\Delta\; T_{i}^{2}}} \right)^{\frac{5}{2}}} \right)}} & {{Equation}\mspace{14mu} 36}\end{matrix}$

The wire delay and transition time variation analyzer 360 determines thetransition time variation at the output of the wire based on the nominaltransition time at the output of the wire, the nominal transition timeat the input of the wire, and the transition time variation at the inputof the wire.

A transition time variation at an output of a wire ΔT_(o) is modeled asa function a difference of a first term and a second term, where thefirst term is a function of T_(o), T_(i), and ΔT_(i) and the second termis a function of T_(o). Equation 37 represents the transition timevariation at the output of the wire ΔT_(o) in this manner.ΔT _(o)=ƒ(ƒ(T _(o) ,T _(i) ,ΔT _(i))−ƒ(T _(o)))  Equation 37

In one embodiment, the first term is T_(o) ²+2T_(i)ΔT_(i)+ΔT_(i) ² andthe second term is T_(o). Equation 38 represents the transition timevariation at the output of the wire ΔT_(o) as a function of T_(o),T_(i), and ΔT_(i), represented according to one embodiment.ΔT _(o)=√{square root over (T _(o) ²+2T _(i) ΔT _(i) +ΔT _(i) ²)}−T_(o)  Equation 38

FIG. 9A illustrates a flow diagram of a method for determining delayvariation at an output of a wire, according to one embodiment. Thecircuit store 220 receives 902 a digital representation of an electroniccircuit. The timing store receives 904 measures of the Elmore delay, thenominal delay of the wire at the output of the wire, the nominaltransition time at the output of the wire, the nominal transition timeat the input of the wire, and the transition time variation at the inputof the wire. The wire delay and transition time variation analyzer 360determines 906 the delay variation of the wire at the output of the wirebased on the Elmore delay, the nominal delay of the wire at the outputof the wire, the nominal transition time at the output of the wire, thenominal transition time at the input of the wire, and the transitiontime variation at the input of the wire.

FIG. 9B illustrates a flow diagram of a method for determiningtransition time variation at an output of a wire, according to oneembodiment. The circuit store 220 receives 912 a digital representationof an electronic circuit. The timing store receives 914 measures of thenominal transition time at the output of the wire, the nominaltransition time at the input of the wire, and the transition timevariation at the input of the wire. The wire delay and transition timevariation analyzer 360 determines 916 the transition time variation ofthe wire at the output of the wire based on the nominal transition timeat the output of the wire, the nominal transition time at the input ofthe wire, and the transition time variation at the input of the wire.

Computing Machine Architecture

FIG. 10 is a block diagram illustrating components of an example machineable to read instructions from a machine-readable medium and executethem in a processor (or controller). Specifically, FIG. 10 shows adiagrammatic representation of a machine in the example form of acomputer system 1000 within which instructions 1024 (e.g., software) forcausing the machine to perform any one or more of the methodologiesdiscussed herein may be executed. In alternative embodiments, themachine operates as a standalone device or may be connected (e.g.,networked) to other machines. In a networked deployment, the machine mayoperate in the capacity of a server machine or a client machine in aserver-client network environment, or as a peer machine in apeer-to-peer (or distributed) network environment.

The machine may be a server computer, a client computer, a personalcomputer (PC), a tablet PC, a set-top box (STB), a personal digitalassistant (PDA), a cellular telephone, a smartphone, a web appliance, anetwork router, switch or bridge, or any machine capable of executinginstructions 1024 (sequential or otherwise) that specify actions to betaken by that machine. Further, while only a single machine isillustrated, the term “machine” shall also be taken to include anycollection of machines that individually or jointly execute instructions1024 to perform any one or more of the methodologies discussed herein.

The example computer system 1000 includes a processor 1002 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU), adigital signal processor (DSP), one or more application specificintegrated circuits (ASICs), one or more radio-frequency integratedcircuits (RFICs), or any combination of these), a main memory 1004, anda static memory 1006, which are configured to communicate with eachother via a bus 1008. The computer system 1000 may further includegraphics display unit 1010 (e.g., a plasma display panel (PDP), a liquidcrystal display (LCD), a projector, or a cathode ray tube (CRT)). Thecomputer system 1000 may also include alphanumeric input device 1012(e.g., a keyboard), a cursor control device 1014 (e.g., a mouse, atrackball, a joystick, a motion sensor, or other pointing instrument), astorage unit 1016, a signal generation device 1018 (e.g., a speaker),and a network interface device 1020, which also are configured tocommunicate via the bus 1008.

The storage unit 1016 includes a machine-readable medium 1022 on whichis stored instructions 1024 (e.g., software) embodying any one or moreof the methodologies or functions described herein. The instructions1024 (e.g., software) may also reside, completely or at least partially,within the main memory 1004 or within the processor 1002 (e.g., within aprocessor's cache memory) during execution thereof by the computersystem 1000, the main memory 1004 and the processor 1002 alsoconstituting machine-readable media. The instructions 1024 (e.g.,software) may be transmitted or received over a network 1026 via thenetwork interface device 1020.

While machine-readable medium 1022 is shown in an example embodiment tobe a single medium, the term “machine-readable medium” should be takento include a single medium or multiple media (e.g., a centralized ordistributed database, or associated caches and servers) able to storeinstructions (e.g., instructions 1024). The term “machine-readablemedium” shall also be taken to include any medium that is capable ofstoring instructions (e.g., instructions 1024) for execution by themachine and that cause the machine to perform any one or more of themethodologies disclosed herein. The term “machine-readable medium”includes, but not be limited to, data repositories in the form ofsolid-state memories, optical media, and magnetic media.

Additional Configuration Considerations

Throughout this specification, plural instances may implementcomponents, operations, or structures described as a single instance.Although individual operations of one or more methods are illustratedand described as separate operations, one or more of the individualoperations may be performed concurrently, and nothing requires that theoperations be performed in the order illustrated. Structures andfunctionality presented as separate components in example configurationsmay be implemented as a combined structure or component. Similarly,structures and functionality presented as a single component may beimplemented as separate components. These and other variations,modifications, additions, and improvements fall within the scope of thesubject matter herein.

Certain embodiments are described herein as including logic or a numberof components, modules, or mechanisms. Modules may constitute eithersoftware modules (e.g., code embodied on a machine-readable medium or ina transmission signal) or hardware modules. A hardware module istangible unit capable of performing certain operations and may beconfigured or arranged in a certain manner. In example embodiments, oneor more computer systems (e.g., a standalone, client or server computersystem) or one or more hardware modules of a computer system (e.g., aprocessor or a group of processors) may be configured by software (e.g.,an application or application portion) as a hardware module thatoperates to perform certain operations as described herein.

In various embodiments, a hardware module may be implementedmechanically or electronically. For example, a hardware module maycomprise dedicated circuitry or logic that is permanently configured(e.g., as a special-purpose processor, such as a field programmable gatearray (FPGA) or an application-specific integrated circuit (ASIC)) toperform certain operations. A hardware module may also compriseprogrammable logic or circuitry (e.g., as encompassed within ageneral-purpose processor or other programmable processor) that istemporarily configured by software to perform certain operations. Itwill be appreciated that the decision to implement a hardware modulemechanically, in dedicated and permanently configured circuitry, or intemporarily configured circuitry (e.g., configured by software) may bedriven by cost and time considerations.

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesthat operate to perform one or more operations or functions. The modulesreferred to herein may, in some example embodiments, compriseprocessor-implemented modules.

The one or more processors may also operate to support performance ofthe relevant operations in a “cloud computing” environment or as a“software as a service” (SaaS). For example, at least some of theoperations may be performed by a group of computers (as examples ofmachines including processors), these operations being accessible via anetwork (e.g., the Internet) and via one or more appropriate interfaces(e.g., application program interfaces (APIs).

The performance of certain of the operations may be distributed amongthe one or more processors, not only residing within a single machine,but deployed across a number of machines. In some example embodiments,the one or more processors or processor-implemented modules may belocated in a single geographic location (e.g., within a homeenvironment, an office environment, or a server farm). In other exampleembodiments, the one or more processors or processor-implemented modulesmay be distributed across a number of geographic locations.

Some portions of this specification are presented in terms of algorithmsor symbolic representations of operations on data stored as bits orbinary digital signals within a machine memory (e.g., a computermemory). These algorithms or symbolic representations are examples oftechniques used by those of ordinary skill in the data processing artsto convey the substance of their work to others skilled in the art. Asused herein, an “algorithm” is a self-consistent sequence of operationsor similar processing leading to a desired result. In this context,algorithms and operations involve physical manipulation of physicalquantities. Typically, but not necessarily, such quantities may take theform of electrical, magnetic, or optical signals capable of beingstored, accessed, transferred, combined, compared, or otherwisemanipulated by a machine. It is convenient at times, principally forreasons of common usage, to refer to such signals using words such as“data,” “content,” “bits,” “values,” “elements,” “symbols,”“characters,” “terms,” “numbers,” “numerals,” or the like. These words,however, are merely convenient labels and are to be associated withappropriate physical quantities.

Unless specifically stated otherwise, discussions herein using wordssuch as “processing,” “computing,” “calculating,” “determining,”“presenting,” “displaying,” or the like may refer to actions orprocesses of a machine (e.g., a computer) that manipulates or transformsdata represented as physical (e.g., electronic, magnetic, or optical)quantities within one or more memories (e.g., volatile memory,non-volatile memory, or a combination thereof), registers, or othermachine components that receive, store, transmit, or displayinformation.

As used herein any reference to “one embodiment” or “an embodiment”means that a particular element, feature, structure, or characteristicdescribed in connection with the embodiment is included in at least oneembodiment. The appearances of the phrase “in one embodiment” in variousplaces in the specification are not necessarily all referring to thesame embodiment.

Some embodiments may be described using the expression “coupled” and“connected” along with their derivatives. For example, some embodimentsmay be described using the term “coupled” to indicate that two or moreelements are in direct physical or electrical contact. The term“coupled,” however, may also mean that two or more elements are not indirect contact with each other, but yet still co-operate or interactwith each other. The embodiments are not limited in this context.

As used herein, the terms “comprises,” “comprising,” “includes,”“including,” “has,” “having” or any other variation thereof, areintended to cover a non-exclusive inclusion. For example, a process,method, article, or apparatus that comprises a list of elements is notnecessarily limited to only those elements but may include otherelements not expressly listed or inherent to such process, method,article, or apparatus. Further, unless expressly stated to the contrary,“or” refers to an inclusive or and not to an exclusive or. For example,a condition A or B is satisfied by any one of the following: A is true(or present) and B is false (or not present), A is false (or notpresent) and B is true (or present), and both A and B are true (orpresent).

In addition, use of the “a” or “an” are employed to describe elementsand components of the embodiments herein. This is done merely forconvenience and to give a general sense of the invention. Thisdescription should be read to include one or at least one and thesingular also includes the plural unless it is obvious that it is meantotherwise.

While particular embodiments and applications have been illustrated anddescribed, it is to be understood that the disclosed embodiments are notlimited to the precise construction and components disclosed herein.Various modifications, changes and variations, which will be apparent tothose skilled in the art, may be made in the arrangement, operation anddetails of the method and apparatus disclosed herein without departingfrom the spirit and scope defined in the appended claims.

We claim:
 1. A non-transitory computer readable storage mediumconfigured to store computer code comprising instructions, theinstructions, when executed by a computer processor, cause the computerprocessor to: receive a digital representation of an electronic circuit,the circuit comprising paths, wherein at least a path of the circuitcomprises a plurality of stages; receive from a library, for each stageof the path an intrinsic delay variation; determine, for a first stageof the path, a stage delay variation at an output of the first stagebased on the intrinsic delay variation of the first stage; and for asecond stage of the plurality of stages, wherein an input of the secondstage is coupled to an output of the first a previous stage: determine acovariance delay term based on an intrinsic delay of the second stageand a transition time of the first stage; and determine stage delayvariation based on the intrinsic delay variation of the second stage andthe covariance delay term.
 2. The non-transitory computer readablestorage medium of claim 1, further comprising instructions that whenexecuted by the computer processor cause the computer processor to:receive a modified digital representation of the electronic circuit,wherein the electronic circuit is modified based on the determined stagedelay variation.
 3. The non-transitory computer readable storage mediumof claim 2, further comprising instructions that when executed by thecomputer processor cause the computer processor to: transmit themodified digital representation of the electronic circuit forfabrication of the electronic circuit.
 4. The non-transitory computerreadable storage medium of claim 1, wherein the instructions furthercause the computer processor to receive for each stage of the path,measures of intrinsic delay, transition time, and transition timevariation, wherein the intrinsic delay represents processing delay of astage, the intrinsic delay variation represents a timing impact of localrandom variation of the intrinsic delay, the transition time representsa slope of a signal waveform, and the transition time variationrepresents a timing impact of local random variation of the transitiontime.
 5. The non-transitory computer readable storage medium of claim 1,further comprising instructions that when executed by the computerprocessor cause the computer processor to: determine an induced delayvariation term based on the second stage and the first stage; andwherein the determined stage delay variation is further based on theinduced delay variation term.
 6. The non-transitory computer readablestorage medium of claim 5, wherein the determined induced delayvariation term is based on the intrinsic delay of the second stage and atransition time of the first stage.
 7. The non-transitory computerreadable storage medium of claim 6, wherein the determined induced delayvariation is further based on a transition time variation of the firststage.
 8. The non-transitory computer readable storage medium of claim5, wherein the determined stage delay variation is further based on theintrinsic delay variation of the second stage.
 9. The non-transitorycomputer readable storage medium of claim 1, wherein the covariancedelay term is determined based on a ratio of a change in the intrinsicdelay of the stage and a change in the transition time of the stage. 10.The non-transitory computer readable storage medium of claim 1, whereinthe covariance delay term is determined further based on an intrinsicdelay variation of the first stage.
 11. The non-transitory computerreadable storage medium of claim 1, wherein the covariance delay term isdetermined further based on a transition time variation of the firststage.
 12. A method comprising: receiving a digital representation of anelectronic circuit, the circuit comprising paths, wherein at least apath of the circuit comprises a plurality of stages; receiving from alibrary, for each stage of the path an intrinsic delay variation;determining, for a first stage of the path, a stage delay variation atan output of the first stage based on the intrinsic delay variation ofthe first stage; and for a second stage of the plurality of stages,wherein an input of the second stage is coupled to an output of thefirst a stage: determining a covariance delay term based on an intrinsicdelay of the second stage and a transition time of the first stage; anddetermining stage delay variation based on the intrinsic delay variationof the second stage and the covariance delay term.
 13. The method ofclaim 12, further comprising: receiving a modified digitalrepresentation of the electronic circuit, wherein the electronic circuitis modified based on the determined stage delay variation.
 14. Themethod of claim 13, further comprising: transmitting the modifieddigital representation of the electronic circuit for fabrication of theelectronic circuit.
 15. The method of claim 12, further comprisingreceiving for each stage of the path, measures of intrinsic delay,transition time, and transition time variation, wherein the intrinsicdelay represents processing delay of a stage, the intrinsic delayvariation represents a timing impact of local random variation of theintrinsic delay, the transition time represents a slope of a signalwaveform, and the transition time variation represents a timing impactof local random variation of the transition time.
 16. The method ofclaim 12, further comprising: determining an induced delay variationterm based on the second stage and the first stage; and wherein thedetermined stage delay variation is further based on the induced delayvariation term.
 17. The method of claim 16, wherein the determinedinduced delay variation term is based on the intrinsic delay of thesecond stage and a transition time of the first stage.
 18. The method ofclaim 17, wherein the determined induced delay variation is furtherbased on a transition time variation of the first stage.
 19. The methodof claim 16, wherein the determined stage delay variation is furtherbased on the intrinsic delay variation of the second stage.
 20. Acomputer system comprising: a computer processor; and a non-transitorycomputer readable storage medium configured to store computer codecomprising instructions, the instructions, when executed by a computerprocessor, cause the computer processor to: receive a digitalrepresentation of an electronic circuit, the circuit comprising paths,wherein at least a path of the circuit comprises a plurality of stages;receive from a library, for each stage of the path an intrinsic delayvariation; determine, for a first stage of the path, a stage delayvariation at an output of the first stage based on the intrinsic delayvariation of the first stage; and for a second stage of the plurality ofstages, wherein an input of the second stage is coupled to an output ofthe first stage: determine a covariance delay term based on an intrinsicdelay of the second stage and a transition time of the first stage; anddetermine stage delay variation based on the intrinsic delay variationof the first stage and the covariance delay term.